<template>
	<view class="content">
		<view class="grid">
			<view class="grid-item notice" @click="navigateTo('/pages/notice/index')">
				<image src="/static/tabbar/notice.png" mode="aspectFit"></image>
				<text>通知公告</text>
			</view>
			<view class="grid-item repair" @click="handleRepairClick">
				<image src="/static/tabbar/repair.png" mode="aspectFit"></image>
				<text>马上报修</text>
			</view>
			<view class="grid-item order" @click="navigateTo('/pages/order/index')">
				<image src="/static/tabbar/order.png" mode="aspectFit"></image>
				<text>我的工单</text>
			</view>
			<view class="grid-item user" @click="navigateTo('/pages/user/index')">
				<image src="/static/tabbar/user.png" mode="aspectFit"></image>
				<text>个人中心</text>
			</view>
		</view>
	</view>
</template>

<script>
export default {
	data() {
		return {
			userRole: 'student' // 默认认为是学生
		}
	},
	methods: {
		// 获取用户信息
		getUserInfo() {
			try {
				const userInfo = uni.getStorageSync('userInfo')
				if (userInfo) {
					// 统一使用 userType 字段判断用户角色 (1 代表维修人员)
					this.userRole = userInfo.userType === 1 ? 'repairer' : 'student'
					console.log('统一检查 - 当前用户类型(userType):', userInfo.userType, '角色:', this.userRole)
				} else {
					this.userRole = 'student' // 默认认为是学生
				}
			} catch (e) {
				console.error('获取用户信息失败:', e)
				this.userRole = 'student' // 出错时也默认是学生
			}
		},
		
		// 处理报修按钮点击
		handleRepairClick() {
			// 判断是否是维修人员 (user_type === 1)
			if (this.userRole === 'repairer') { // 使用更新后的 userRole 判断
				// 如果是维修人员，弹出提示
				uni.showModal({
					title: '提示',
					content: '维修人员暂时不支持报修功能',
					showCancel: false,
					confirmText: '我知道了'
				})
			} else {
				// 如果不是维修人员，正常跳转到报修页面
				this.navigateTo('/pages/repair/index')
			}
		},
		navigateTo(url) {
			// 检查是否需要登录（排除通知公告、首页和个人中心）
			const needLogin = !['/pages/notice/index', '/pages/index/index', '/pages/user/index'].includes(url)
			if (needLogin) {
				const token = uni.getStorageSync('token')
				if (!token) {
					uni.showToast({
						title: '请先登录',
						icon: 'none'
					})
					uni.navigateTo({
						url: '/pages/login/index'
					})
					return
				}
			}
			
			// 判断是否是tabBar页面
			const isTabBarPage = ['/pages/index/index', '/pages/notice/index', '/pages/repair/index', '/pages/order/index', '/pages/user/index'].includes(url)
			
			if (isTabBarPage) {
				uni.switchTab({
					url
				})
			} else {
				uni.navigateTo({
					url
				})
			}
		}
	}
}
</script>

<style>
	.content {
		background-color: #f5f5f5;
		min-height: 100vh;
	}

	.grid {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 20rpx;
		padding: 20rpx;
	}

	.grid-item {
		background-color: #ffffff;
		border-radius: 20rpx;
		padding: 40rpx;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.1);
	}

	.grid-item image {
		width: 80rpx;
		height: 80rpx;
		margin-bottom: 20rpx;
	}

	.grid-item text {
		color: #333333;
		font-size: 28rpx;
	}

	.notice {
		background-color: #E8F0FF;
	}

	.repair {
		background-color: #E6FFF2;
	}

	.order {
		background-color: #FFF3E6;
	}

	.user {
		background-color: #FFE6E6;
	}
</style>
